package persistencia;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import model.Proveedor;

public class AdministradorPersistenciaProveedor {
	
	private static AdministradorPersistenciaProveedor instancia;
	
	public AdministradorPersistenciaProveedor(){
		
	}
	
	/* SINGLETON */
	
	public static AdministradorPersistenciaProveedor getInstancia(){
		if(instancia == null){
			instancia = new AdministradorPersistenciaProveedor();
		}
		
		return instancia;
	}
	
	/* SELECT PROVEEDOR */
	
	public Proveedor selectProveedor(int cuit){
		
		//Obtener conexion BD 
		Connection con = PoolConnection.getPoolConnection().getConnection();
		Proveedor proveedor = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		
		try{
			
			String  SQL = "SELECT * from proveedores WHERE cuit ="+cuit;
			
			ps = con.prepareStatement(SQL);
			rs = ps.executeQuery();
			
			while(rs.next()){
				
				proveedor = new Proveedor(rs.getInt("cuit"), rs.getString("nombre"), rs.getString("direccion"));
				
			}
			
			PoolConnection.getPoolConnection().realeaseConnection(con);
			
		}
		catch( SQLException e ) 
	      {
				System.out.println("Mensaje Error al encontrar Proveedor: " + e.getMessage());
				System.out.println("Stack Trace al encontrar Proveedor: " + e.getStackTrace());
				PoolConnection.getPoolConnection().realeaseConnection(con);
	      }
		return proveedor;
	}
	
	/* INSERTAR PROVEEDOR */

	
	public void insertProveedor(Proveedor proveedor) {
		
		//Obtener conexion BD 
		Connection con = PoolConnection.getPoolConnection().getConnection();
		
		PreparedStatement ps = null;
		
		try{
			
			String SQL = "INSERT into proveedores (cuit, nombre, direccion) VALUES (?,?,?)";
			
							
				ps = con.prepareStatement(SQL);
				ps.setInt(1, proveedor.getCuit());
				ps.setString(2, proveedor.getNombre());
				ps.setString(3, proveedor.getDireccion());
				
				ps.execute();
				
				PoolConnection.getPoolConnection().realeaseConnection(con);
				
			}
		catch( SQLException e ) 
	      {
				System.out.println("Mensaje Error al insertar Proveedor: " + e.getMessage());
				System.out.println("Stack Trace al insertar Proveedor: " + e.getStackTrace());
				PoolConnection.getPoolConnection().realeaseConnection(con);
	      }
		}
		

}
